The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
A database management system (DBMS) manages a database, and may have one or more database servers. A database comprises database data and a database dictionary that are stored on a persistent memory mechanism. An extension of a DBMS is a container DBMS, which contains multiple individual databases that are hosted and managed by a database server. The individual databases are called Pluggable Databases (“PDBs”). A container DBMS may contain numerous PDBs. A user may access a PDB within a container DBMS by establishing a database session for a PDB.
A container DBMS is a powerful mechanism for database consolidation. A container DBMS provides a high degree of computer resource sharing while concurrently providing a high degree of isolation.
The isolation provided by a container DBMS is at an existential level. Database sessions established for a PDB may be limited to accessing or otherwise viewing database objects defined for the PDB by the PDB's dedicated database dictionary.
While database objects may be isolated between database sessions of PDBs, various computing resources may be shared across database sessions of PDBs. Hosting multiple PDBs on same database server thus allows the computing resources of database servers or instances to be shared between multiple PDBs.
Among the computer resources shared between multiple PDBs is a shared object cache of a database server. The shared object cache is used to cache shared database objects used by the various database sessions of the PDBs hosted on a database server. Because the shared object cache is a computer resource that is shared by database sessions of multiple PDBs, balancing its usage between PDBs is an important function for a container DBMS. Described herein are techniques for more effectively managing the usage of the shared object cache in a container DBMS.